// 参数默认值
// 正常情况下不传参会打印undefined
// 加入一个默认值之后不传参会输出默认值
// function fn(flag = true) {
//     console.log(flag);
// }
// fn();
// 但是要注意的是,带有默认值的参数必须在最后,否则会被前面传入的参数值给替代
function fn(flag = true, str) {
    console.log(flag);
    console.log(str);
}
fn();

// 剩余参数

// 以前获取剩余参数都是使用arguments，但是arguments是一个伪数组
// es2015使用...变量名可以获取到剩余所有参数
// 必须写在参数中最后一个且只能写一次
function foo(...args) {
    console.log(arguments);
    console.log(args);
}
foo(1, 2, 3, 4);

// 展开运算符
// 和剩余参数的运算符写法一致,但是这里表示的展开数组,拿到数组内所有的值(不能展开对象)
let names = ["jack", "tom"];
console.log(...names);
